var path = require('path');
var osenv = require('osenv');
const { isExists, moveFileTo, readFileContent } = require('../lib/util')

let isConfigExist =  () => {
  // 判断home目录下是否存在.fdrc文件
  return new Promise((resolve, reject) => {
    const filePath = path.resolve(osenv.home(), '.fdrc')
    if (isExists(filePath)) {
      readFileContent(filePath).then(content => {
        let parseArr = content.replace(/[\r]/g, '').replace(/[ ]/g, '').replace(/[\n]/g, ',').split(',')
        let accessToken = parseArr[0].slice(parseArr[0].indexOf('=') + 1, parseArr[0].length)
        let host = parseArr[1].slice(parseArr[1].indexOf('=') + 1, parseArr[1].length)
        var reg = /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/
        if (accessToken !== '' && reg.test(host)) {
          resolve({
            failItem: [],
            data: {
              accessToken,
              host
            },
            msg: '校验通过，可以使用',
            success: true
          })
        } else if (accessToken === '' && reg.test(host)) {
          resolve({
            failItem: ['accessToken'],
            data: {
              accessToken: '',
              host: host
            },
            msg: '还没有配置accessToken，请使用 fff config 命令进行配置。',
            success: false
          })
        } else if (accessToken !== '' && !reg.test(host)) {
          resolve({
            failItem: ['host'],
            data: {
              accessToken: accessToken,
              host: ''
            },
            msg: '还没有配置服务器地址，请使用 fff config 命令进行配置。',
            success: false
          })
        } else {
          resolve({
            failItem: ['host', 'accessToken'],
            data: {
              accessToken: '',
              host: ''
            },
            msg: '还没有配置任何信息，请使用 fff config 命令进行配置。',
            success: false
          })
        }
      }).catch(err => {
        console.log('文件内容读取失败', err)
      })
    } else {
      moveFileTo('../config/.fdrc', filePath).then(result => {
        console.log('还没有任何配置，请使用 fff config 命令进行配置。')
      }).catch(err => {
        console.log('err', err)
      })
    }
  })
}

module.exports = {
  isConfigExist
}